﻿Imports extranet.BE
Imports extranet.BC
Imports System.Collections.Generic
Imports MetodosComuns


Partial Class forum_novo_post
    Inherits System.Web.UI.Page
    Dim idTopico As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim objBESeguranca As New BESeguranca
        Dim objBEUsuario As BEUsuario = Session("objBEUsuario")

        If IsNothing(objBEUsuario) Then Response.Redirect(TELA_LOGOUT)
        Session("strTela") = MetodosComuns.GetCurrentPageName()
        If Not IsPostBack Then          ' SEGURANÇA
            objBESeguranca = BCSeguranca.SelecionaPermissoes(objBEUsuario.GrupoAcesso, Session("strTela"))
            If Not objBESeguranca.Autorizado Then Response.Redirect(TELA_LOGOUT)
            Session("objBESeguranca") = objBESeguranca
        Else
            objBESeguranca = Session("objBESeguranca")
        End If
    End Sub

    Protected Sub btnPostar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPostar.Click
        Dim objBEUsuario As BEUsuario = Session("objBEUsuario")
        Dim objBEMensagem As New BEMensagem
        Dim objBEPost As New BEPost
        Dim auxIdPost As Integer
        Dim nc As String
        Dim ns As String
        Dim idTopico As String
        Dim idMsg As Integer
        Dim lstobjBETopicoPostPendente As List(Of BETopicoPostPendente)
        Dim strMsgEmail As String
        Dim strLink As String

        objBEPost.IdTopico = Request.QueryString("id")

        objBEMensagem.Remetente = objBEUsuario.Usuario
        objBEMensagem.Data = Now
        objBEMensagem.Mensagem = FCKeditor1.Value
        objBEMensagem.Status = "Aguardando"

        objBEMensagem.Reprovador = ""
        objBEMensagem.Aprovador = ""
        objBEMensagem.JustificativaReprovacao = "Vazio"

        auxIdPost = BCForum.AdicionarPost(objBEPost, objBEMensagem)

        lstobjBETopicoPostPendente = BCForum.ListaPostsPendentes()
        nc = lstobjBETopicoPostPendente(lstobjBETopicoPostPendente.Count - 1).NomeCategoria
        ns = lstobjBETopicoPostPendente(lstobjBETopicoPostPendente.Count - 1).NomeSubcategoria
        idTopico = lstobjBETopicoPostPendente(lstobjBETopicoPostPendente.Count - 1).IdTopico
        idMsg = lstobjBETopicoPostPendente(lstobjBETopicoPostPendente.Count - 1).IdMensagem

        strLink = "<a href=""http://200.155.77.194/extranet/forum/mediar_post.aspx?tipo=post&idpost=" & auxIdPost.ToString & "&nc=" & nc & "&ns=" & ns & "&idtopico=" & idTopico.ToString & "&idmsg=" & idMsg.ToString & """>Clique aqui</a> para visualizá-lo."
        strMsgEmail = "Um novo Post foi adicionado ao Forum e aguarda aprovação.<br/><br/>" & strLink
        MetodosComuns.EnviaEmail("allan.roosch@fit4.com.br", strMsgEmail, "Novo post adicionado", "extranet@reebokfitness.com.br", "extranet@reebokfitness.com.br")
        'MetodosComuns.EnviaEmail("ricardodd@gmail.com", strMsgEmail, "Novo post adicionado", "extranet@reebokfitness.com.br", "extranet@reebokfitness.com.br")
        alteraNomeImagem(objBEMensagem.Mensagem, 0, auxIdPost)

        idTopico = Request.QueryString("id")
        Response.Redirect("msg_post_enviado.aspx?id=" & idTopico)
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        idTopico = Request.QueryString("id")
        Response.Redirect("topico.aspx?id=" & idTopico)
    End Sub


    Protected Sub alteraNomeImagem(ByVal strMensagem As String, ByVal tipo As Integer, ByVal id As Integer)
        Dim i As Integer
        Dim f As Integer = 0
        Dim strAux As String
        Dim caminhoFigura As String = ""
        Dim extensaoFigura As String
    Dim nomeAntigoFigura As String = ""
    Dim nomeNovoFigura As String = ""
        Dim fimdaMsg As Boolean = False
        Dim indexImagem As Integer = 0

        Dim pathAntigo As String
        Dim pathNovo As String

        While Not (fimdaMsg)
            i = strMensagem.IndexOf("src=""", f) 'verifico se existe dentro da mensagem indicação para alguma imagem
            If (i <> -1) Then
                f = strMensagem.IndexOf("""", i + 5)
                strAux = strMensagem.Substring(i + 5, f - i - 5)
                extensaoFigura = strAux.Substring(strAux.Length - 4, 4)
                For a As Integer = strAux.Length - 1 To 0 Step -1
                    If strAux.Substring(a, 1) = "/" Then
                        caminhoFigura = strAux.Substring(0, a + 1) 'pego o camigo da figura no servidor
                        nomeAntigoFigura = strAux.Substring(a + 1, strAux.Length - 7 - a + 2) 'nome figura
                        nomeAntigoFigura = HttpUtility.UrlDecode(nomeAntigoFigura, Encoding.UTF8) 'essa função decodifica UTF8 para que nome do arquivo fique legível
                        a = 0 'para finalizar o "for"
                    End If
                Next
                If tipo = 0 Then
                    nomeNovoFigura = "p" & id.ToString & "_" & indexImagem.ToString
                Else
                    nomeNovoFigura = "t" & id.ToString & "_" & indexImagem.ToString
                End If

                caminhoFigura = caminhoFigura.Replace("/", "\") 'altero de caminho no servidor para caminho local
                pathAntigo = Server.MapPath(".." & caminhoFigura & nomeAntigoFigura & extensaoFigura) 'monto caminho local da figura
                pathNovo = Server.MapPath("..\imagens\forum\") 'monto novo caminho local da figura
                Dim arq As New System.IO.FileInfo(pathAntigo)
                If arq.Exists Then
                    strMensagem = strMensagem.Remove(i, f - i) 'removo da mensagem caminho antigo da figura
                    strMensagem = strMensagem.Insert(i, "src=""../imagens/forum/" & nomeNovoFigura & extensaoFigura) 'insiro na mensam novo caminho da figura
                    indexImagem = indexImagem + 1

                    arq.MoveTo(pathNovo & nomeNovoFigura & extensaoFigura) 'transfiro a foto para novo local
                End If
            Else
                fimdaMsg = True
            End If
        End While
        If tipo = 0 Then
            Dim objBEPost As New BEPost
            Dim objBEMensagem As New BEMensagem
            objBEPost = BCForum.SelecionaPost(id)
            objBEMensagem = BCMensagem.BuscaMensagem(objBEPost.IdMensagem)
            objBEMensagem.Mensagem = strMensagem
            BCMensagem.Salvar(objBEMensagem)
        Else
            Dim objBETopico As New BETopico
            Dim objBEMensagem As New BEMensagem
            objBETopico = BCForum.SelecionaTopico(id)
            objBEMensagem = BCMensagem.BuscaMensagem(objBETopico.IdMensagem)
            objBEMensagem.Mensagem = strMensagem
            BCMensagem.Salvar(objBEMensagem)
        End If
    End Sub
End Class